/*
 * Model.h
 *
 *  Created on: Jun 4, 2012
 *      Author: piotr
 */

#ifndef MODEL_H_
#define MODEL_H_

#include <qfile.h>
#include <qstring.h>

/**
 * Klasa obliczająca statystyki systemu plików
 *
 * Klasa zawiera różne metody służące do obliczania
 * i przekazywania różnych statystyk systemu plików
 * w formacie EXT2
 */
class Model : QObject {
	Q_OBJECT

public:
	Model();
	virtual ~Model();

	bool openFilesystem(QString filename);
	long int size();
	long int blockSize();
	long int totalNumberOfBlocks();
	int numberOfGroups();
	long int numberOfBlocksInGroup(int groupNumber);
	long int numberOfInodesInAGroup();
	short int numberOfFreeBlocksInAGroup(int groupNumber);
	short int numberOfFreeInodesInAGroup(int groupNumber);
	long int totalNumberOfInodes();
	long int totalNumberOfFreeBlocks();
	long int totalNumberOfFreeInodes();
	long int freeSpace();


private:
	QFile *filesystem;
};

#endif /* MODEL_H_ */
